💡 Шпаргалка: функция с `yield` всегда возвращает генератор
Если в функции присутствует хотя бы один yield, Python преобразует её в генератор — независимо от того, выполнится ли yield при вызове.
Обычное поведение с возвращением списка:
А вот что происходит, если использовать генератор с
Даже при
📌 Это важно учитывать при проектировании логики, особенно если ожидается обычное значение, а не итератор.
Библиотека питониста #буст
Если в функции присутствует хотя бы один yield, Python преобразует её в генератор — независимо от того, выполнится ли yield при вызове.
Обычное поведение с возвращением списка:
def greet(as_list: bool):
message = 'hello!'
if as_list:
message_list = []
for char in message:
message_list += char
return message_list
else:
return message
>>> greet(as_list=True)
['h', 'e', 'l', 'l', 'o', '!']
>>> greet(as_list=False)
'hello!'
А вот что происходит, если использовать генератор с
yield
:def greet(as_generator: bool):
message = 'hello!'
if as_generator:
for char in message:
yield char
else:
return message
>>> greet(as_generator=True)
<generator object greet at 0x0000023F0A066F60>
>>> greet(as_generator=False)
<generator object greet at 0x0000023F0A066F60>
Даже при
as_generator=False
функция всё равно возвращает объект генератора. Это связано с тем, что наличие yield в теле функции делает её генераторной на уровне определения.📌 Это важно учитывать при проектировании логики, особенно если ожидается обычное значение, а не итератор.
Библиотека питониста #буст
Согласно майскому рейтингу TIOBE, Python снова побил рекорды:
Почему не все ещё на Python?
Пока язык остаётся медленным и интерпретируемым — он не годится для realtime и критичных к сбоям систем. Но во всех остальных областях Python медленно, но уверенно становится стандартом.
Библиотека питониста #свежак
Please open Telegram to view this post
VIEW IN TELEGRAM
flexicache
В Python удобно использовать декораторы для кэширования результатов функций и методов — как в оперативной памяти, так и во временных хранилищах вроде
memcached
. Один из наиболее гибких инструментов для этого — flexicache
из библиотеки fastcore
.flexicache — это декоратор, который поддерживает:
• LRU-кэширование (удаление наименее используемых элементов),
• политику истечения кэша по времени —
time_policy
,• инвалидирование кэша при изменении файла —
mtime_policy
.time_policy
@flexicache(time_policy(0.1))
def random_func():
return randint(1, 1000)
assert random_func() == random_func()
sleep(0.2)
assert random_func() != random_func()
mtime_policy
. Инвалидирование при изменении файла main.py
@flexicache(mtime_policy('main.py'))
def random_func():
return randint(1, 1000)
Path('main.py').touch() # обновление времени изменения
@flexicache(time_policy(0.1), mtime_policy('main.py'))
def random_func():
return randint(1, 1000)
Кэш сбрасывается либо по времени, либо при обновлении файла — в зависимости от того, что произойдёт первым.
@flexicache(maxsize=2)
def random_func(v):
return randint(1, 1000)
random_func(1)
random_func(2)
random_func(3) # результат для аргумента 1 будет удалён
timed_cache
. Для кэша с таймаутом и ограничением размераfrom fastcore.xtras import timed_cache
@timed_cache(0.1, maxsize=2)
def random_func(v):
return randint(1, 1000)
📌
flexicache
— гибкий и мощный инструмент для продвинутого кэширования в Python. Поддерживает политики истечения, комбинирование стратегий и заменяет стандартный lru_cache
.Библиотека питониста #буст
Please open Telegram to view this post
VIEW IN TELEGRAM
🚨 Обновления безопасности для Django: 5.2.1, 5.1.9 и 4.2.21
7 мая 2025 года команда Django выпустила обновления, устраняющие уязвимость CVE-2025-32873, связанную с функцией
Теперь при обнаружении таких ошибок функция вызывает исключение
✅ Рекомендуем обновить Django до версий 5.2.1, 5.1.9 и 4.2.21. Обновления доступны через:
Библиотека питониста #свежак
7 мая 2025 года команда Django выпустила обновления, устраняющие уязвимость CVE-2025-32873, связанную с функцией
strip_tags()
. Уязвимость могла привести к отказу в обслуживании (DoS), если входные данные содержали большие последовательности незакрытых HTML тегов.Теперь при обнаружении таких ошибок функция вызывает исключение
SuspiciousOperation
, предотвращая проблемы с производительностью.pip install --upgrade Django
Библиотека питониста #свежак
Please open Telegram to view this post
VIEW IN TELEGRAM
Когда проект растет, вопросы производительности становятся критическими. Оптимизация кода — важный шаг на пути к масштабированию приложений, особенно когда дело касается обработки больших объёмов данных, многозадачности или работы с сетевыми запросами. Python, несмотря на свою удобство и читаемость, требует внимания к деталям в области производительности.
Промт:
Проанализируй текущий код на Python и оптимизируй его для повышения производительности.
• Произведи замер времени работы функций с использованием time или timeit.
• Используй Cython, NumPy или pandas для ускорения вычислений, где это возможно.
• Оптимизируй работу с памятью, избавляясь от лишних копий данных и используя эффективные структуры данных (например, deque, defaultdict, set).
• Применяй асинхронность (asyncio) или многозадачность (с помощью concurrent.futures или multiprocessing) для параллельной обработки данных.
• Профилируй код с помощью cProfile, line_profiler, чтобы выявить узкие места в производительности.
Уменьшить время работы программы и потребление ресурсов, обеспечив эффективную обработку данных и улучшение отклика системы.
timeit
и cProfile
— для замеров производительности,NumPy
, pandas
— для векторизованных операций с данными,asyncio
или multiprocessing
— для асинхронной и параллельной обработки,memory_profiler
— для анализа потребления памяти.Библиотека питониста #буст
Please open Telegram to view this post
VIEW IN TELEGRAM
📰 Сокращения в Microsoft затронули команду Faster CPython
По информации от Python core developer'а Бретта Кэннона (Brett Cannon), Microsoft провела волну сокращений, в результате которой из компании ушли три ключевых участника проекта Faster CPython:
📍 Mark Shannon — технический лидер проекта Faster CPython и один из его инициаторов
📍 Eric Snow — core-девелопер CPython и автор идеи подмодуля
📍 Irit Katriel — одна из ведущих разработчиц в области исключений и трассировки в Python
🐍 Что такое Faster CPython
Faster CPython — это проект, стартовавший с релиза Python 3.11 при поддержке Microsoft, цель которого — повысить производительность интерпретатора Python, сохранив совместимость с существующим кодом. Благодаря работе команды, Python 3.11 и 3.12 получили значительный прирост скорости (до 25–60% в отдельных сценариях).
🤔 Что это значит для сообщества
📍 Потеря ключевых инженеров ставит под вопрос будущее темпа развития Faster CPython.
📍 Однако сам проект открыт и интегрирован в официальный CPython, а значит — работа продолжится под эгидой Python Software Foundation и сообщества.
📍 Многие выразили поддержку уволенным разработчикам — их вклад в Python остается фундаментальным.
💬 Что вы думаете об этих изменениях в команде Faster CPython? Как это скажется на будущем Python?
Библиотека питониста #свежак
По информации от Python core developer'а Бретта Кэннона (Brett Cannon), Microsoft провела волну сокращений, в результате которой из компании ушли три ключевых участника проекта Faster CPython:
subinterpreters
🐍 Что такое Faster CPython
Faster CPython — это проект, стартовавший с релиза Python 3.11 при поддержке Microsoft, цель которого — повысить производительность интерпретатора Python, сохранив совместимость с существующим кодом. Благодаря работе команды, Python 3.11 и 3.12 получили значительный прирост скорости (до 25–60% в отдельных сценариях).
🤔 Что это значит для сообщества
💬 Что вы думаете об этих изменениях в команде Faster CPython? Как это скажется на будущем Python?
Библиотека питониста #свежак
Please open Telegram to view this post
VIEW IN TELEGRAM
Python Книги - канал для скачивания Python книг только на русском языке
Что в нашем канале:
1. Книги по питону, которые помогут вам подготовится к собеседованию.
2. Книги на русском языке
3. Много книг для начинающих
4. Все книги можно скачать в 2 клика
Подписывайтесь и качайте книги: @pythonknigiru
Реклама. Киренкина Марина Дмитриевна, ИНН 345702417736. Erid 2VtzquznN8k
Что в нашем канале:
1. Книги по питону, которые помогут вам подготовится к собеседованию.
2. Книги на русском языке
3. Много книг для начинающих
4. Все книги можно скачать в 2 клика
Подписывайтесь и качайте книги: @pythonknigiru
Реклама. Киренкина Марина Дмитриевна, ИНН 345702417736. Erid 2VtzquznN8k
Please open Telegram to view this post
VIEW IN TELEGRAM
🛠 Устанавливаем `pre-commit` через `uv`: проще, быстрее, удобнее
💡 Решение — использовать
Установить
⚡️ После установки:
—
— Python-хуки будут устанавливаться через
Примеры использования:
🔄 Обновление:
Библиотека питониста #буст
pre-commit
— один из лучших инструментов для запуска проверок перед коммитом в Git. Но установка через pip
часто вызывает раздражение: нужен Python, виртуалки, обновления вручную…💡 Решение — использовать
uv
: супербыстрый Python-менеджер, который берёт всё под контроль — от версий Python до окружений.Установить
pre-commit
с uv
теперь можно одной командой:uv tool install pre-commit --with pre-commit-uv
⚡️ После установки:
—
pre-commit
будет доступен глобально;— Python-хуки будут устанавливаться через
uv
, что намного быстрее.Примеры использования:
pre-commit --version
pre-commit install
pre-commit run --all-files
🔄 Обновление:
uv tool upgrade pre-commit
Библиотека питониста #буст
🚨 Смешные новости про IT теперь в одном канале
Мы запустили @hahacker_news — наш новый юмористический IT-канал.
Туда будем постить лучшие шутки до 19го мая, которые вы присылали на конкурс.
👉 @hahacker_news — голосование уже идёт, переходите, читайте, угарайте и оставляйте реакции
Мы запустили @hahacker_news — наш новый юмористический IT-канал.
Туда будем постить лучшие шутки до 19го мая, которые вы присылали на конкурс.
👉 @hahacker_news — голосование уже идёт, переходите, читайте, угарайте и оставляйте реакции
🤓 Разбираемся в SOLID — 5 принципов, которые спасут ваш код
В карточках рассказали, как работают принципы SOLID. Если в вашем коде они есть — вы на правильном пути к чистой архитектуре.
✅ Еще больше примеров и объяснений — в статье: https://proglib.io/sh/FdN5qxyPle
Библиотека питониста #буст
В карточках рассказали, как работают принципы SOLID. Если в вашем коде они есть — вы на правильном пути к чистой архитектуре.
✅ Еще больше примеров и объяснений — в статье: https://proglib.io/sh/FdN5qxyPle
Библиотека питониста #буст
Самые догадливые, пишите ответ в комментах 👇
Небольшая подсказка — это термин относится к Python.
Прячем ответы под спойлер, чтобы не спалить остальным.
Библиотека питониста #междусобойчик
Небольшая подсказка — это термин относится к Python.
Прячем ответы под спойлер, чтобы не спалить остальным.
Библиотека питониста #междусобойчик
📚Напоминаем про наш полный курс «Самоучитель по Python для начинающих»
Мы написали и собрали для вас в одну подборку все 25 глав и 230 практических заданий!
🐍 Часть 1: Особенности, сферы применения, установка, онлайн IDE
🐍 Часть 2: Все, что нужно для изучения Python с нуля – книги, сайты, каналы и курсы
🐍 Часть 3: Типы данных: преобразование и базовые операции
🐍 Часть 4: Методы работы со строками
🐍 Часть 5: Методы работы со списками и списковыми включениями
🐍 Часть 6: Методы работы со словарями и генераторами словарей
🐍 Часть 7: Методы работы с кортежами
🐍 Часть 8: Методы работы со множествами
🐍 Часть 9: Особенности цикла for
🐍 Часть 10: Условный цикл while
🐍 Часть 11: Функции с позиционными и именованными аргументами
🐍 Часть 12: Анонимные функции
🐍 Часть 13: Рекурсивные функции
🐍 Часть 14: Функции высшего порядка, замыкания и декораторы
🐍 Часть 15: Методы работы с файлами и файловой системой
🐍 Часть 16: Регулярные выражения
🐍 Часть 17: Основы скрапинга и парсинга
🐍 Часть 18: Основы ООП – инкапсуляция и наследование
🐍 Часть 19: Основы ООП – абстракция и полиморфизм
🐍 Часть 20: Графический интерфейс на Tkinter
🐍 Часть 21: Основы разработки игр на Pygame
🐍 Часть 22: Основы работы с SQLite
🐍 Часть 23: Основы веб-разработки на Flask
🐍 Часть 24: Основы работы с NumPy
🐍 Часть 25: Основы анализа данных с Pandas
Мы написали и собрали для вас в одну подборку все 25 глав и 230 практических заданий!
🐍 Часть 1: Особенности, сферы применения, установка, онлайн IDE
🐍 Часть 2: Все, что нужно для изучения Python с нуля – книги, сайты, каналы и курсы
🐍 Часть 3: Типы данных: преобразование и базовые операции
🐍 Часть 4: Методы работы со строками
🐍 Часть 5: Методы работы со списками и списковыми включениями
🐍 Часть 6: Методы работы со словарями и генераторами словарей
🐍 Часть 7: Методы работы с кортежами
🐍 Часть 8: Методы работы со множествами
🐍 Часть 9: Особенности цикла for
🐍 Часть 10: Условный цикл while
🐍 Часть 11: Функции с позиционными и именованными аргументами
🐍 Часть 12: Анонимные функции
🐍 Часть 13: Рекурсивные функции
🐍 Часть 14: Функции высшего порядка, замыкания и декораторы
🐍 Часть 15: Методы работы с файлами и файловой системой
🐍 Часть 16: Регулярные выражения
🐍 Часть 17: Основы скрапинга и парсинга
🐍 Часть 18: Основы ООП – инкапсуляция и наследование
🐍 Часть 19: Основы ООП – абстракция и полиморфизм
🐍 Часть 20: Графический интерфейс на Tkinter
🐍 Часть 21: Основы разработки игр на Pygame
🐍 Часть 22: Основы работы с SQLite
🐍 Часть 23: Основы веб-разработки на Flask
🐍 Часть 24: Основы работы с NumPy
🐍 Часть 25: Основы анализа данных с Pandas